\subsection{Technical choices}

\subsubsection{Choice of the languages}
One of the requirements for this project was that the animator should be able to run on the students' machine, whatever their configuration is. Therefore we decided to use the \java\ language, which is especialy designed for multiplatform applications.\sk\\

Since we decided to use \java\, the logical choice to us for the \gui\ was \tech{Swing}. \tech{Swing} is an API for providing a \gui\ for \java\ programs.\sk\\

Another requirement was to be able to write \autos\ easily. The easiest and most efficient way for this was to use \tech{XML} files to store \autos. This way it is quite painless for anybody to create or modify \autos\  with a simple text editor.\mk

As for the parsing of this XML file, we chose to use \tech{DOM}\footnote{Document Object Model}. It seemed the better choice to us because it is integrated in \java\ as well as \tech{SAX}\footnote{Simple Api for Xml}, and also easier to use than the later. The main disadvantage of \tech{DOM} it stores in the central memory the \tech{XML} file as a tree, but since the file that will be opened are relatively small it won't be a problem.\bk\\

\subsubsection{Choice of the tools}

The two principal tools we used were \eclipse\ and \svn.\sk\\

Once again, it seemed logical to us to use \eclipse\ as it is a powerful tool especially designed for \java\ projects. It offers many advantages such as source code completion\footnote{Source code completion involves the program predicting a word or phrase that the user wants to type in without the user actually typing it in completely.}, package management, or graphical \gui\ designer.\sk\\

To manage the successive versions of the project we have decided to use the dedicated versioning tool that \svn\ is. The \svn\ server we used is the one provided by \tech{Google} and their source code hosting service.